import pickle
import sys


class LoginManager:
    username = ""  # 类的变量，方便在操作页面获取当前的用户名

    def __init__(self):
        self.user_dict = {}  # 初始化一个用户信息字典
        try:  # 如果存放用户信息的data文件存在，就将该文件打开，并获取用户信息存放到user_dict字典里
            pkl_file = open('./my_app/data.pkl', 'rb')
            self.user_dict = pickle.load(pkl_file)
        except:  # 如果不存在，就将该文件创建，并将初始化的user_dict字典存进文件里
            pkl_file = open('./my_app/data.pkl', 'wb')
            pickle.dump(self.user_dict, pkl_file)
        pkl_file.close()  # 操作完关闭该文件的占用

    def login(self, user, pwd):
        if self.user_dict.__contains__(user):
            # 如果该用户已经在文件里面存放，并且输入的密码也和文件里保存的一致，返回True，否则返回False
            return str(self.user_dict[user][0]).__eq__(str(pwd))
        return False

    def register(self, user, email, pwd):
        self.user_dict[user] = (pwd, user)
        self.user_dict[email] = (pwd, user)
        pkl_file = open('./my_app/data.pkl', 'wb')
        # 将注册输入的用户名，邮箱，密码保存在文件里
        pickle.dump(self.user_dict, pkl_file)
        pkl_file.close()
